Block based transform compression is by far the most popular type of compression used in video and image coding standards and schemes. Its applications include, but are not limited to, broadcasting, DVD, Video-over-IP and video conferencing, due to the reduction of transmission bandwidth and storage space it enables. A highly advantageous example of such block transform based compression is the block based (usually, an 8×8 pixel block) discrete cosine transform (8×8 DCT), which provides near optimal energy compaction and signal orthogonal representation, and which is available with fast algorithms and implementations. Because of these advantages, the block based DCT is the dominant compression transform used in video compression standards such as MPEG-x (e.g., MPEG-2, MPEG-4 etc.), JPEGs, H.26x and others.
However, block-based transform compression techniques inherently introduce, difficulties, such as so-called blocky artifacts across the block boundaries as a result of the transformation and quantization of the data being performed independently, without consideration of the correlation between neighboring blocks and data. Another cause of blocky artifacts is the error arising from block based motion prediction/compensation, which causes reconstruction error in blocks having non-zero motion vectors associated therewith.
In block-based video coding schemes utilizing high compression ratios, the block artifacts appear more obvious. The blocky effects are more noticeable, and appear as grid noise, along the block boundaries in both smooth, homogenous areas and in busy areas with high motion activity.
Another problem that can arise from these block-based transform compression techniques is “flickering.” This problem appears as a brief flash in the image as relatively large changes occur across block borders that are otherwise lacking in significant high frequency components. In other words, this is a temporal artifact arising from the block-based transform compression techniques. In accordance with the present invention, as described below, this block-based artifact may be removed or ameliorated by novel temporal filtering.
There are numerous conventional deblocking and/or deflickering methods known in the literature and from experimentation. These methods include, for example, special pixel domain deblocking filtering methods such as H.264 adaptive deblocking (loop) filtering. There has also been some investigation of deblocking methods that operate in the frequency domain. See, e.g., Chen et al., “Adaptive Postfiltering of Transform Coefficients for the Reduction of Blocking Artifacts,” IEEE Trans. On Circuits and Systems for Video Technology, Vol. 11, pp. 594-602 (May 2001). However, to the inventor's knowledge there have been no methods using temporal deblocking and/or deflickering processing in the frequency domain.
Thus, it has been found that current deblocking and/or deflickering methods generally produce unsatisfactory results in terms of subjective quality. The known methods also tend to be very expensive in computational and/or structural complexity, and therefore are unsuited for real-time implementations on ASIC, FPGA, DSP and other platforms.